home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga1 / docs / amiga-qdos.ver < prev    next >
Text File  |  2000-01-03  |  41KB  |  977 lines

  1.   ____      _  _     _   ____    ____       ____   ____      ____      ____
  2.  / __ \  / \/ \ | | / ___|  / __ \      / __ \ |  _ \  / __ \  / ___|
  3. | |__| ||      || || |     _ | |__| |  __  | |  | || | \ \| |  | | \_ \
  4. |  __  || |\/| || || |__| ||  __  | |__| | |_/    \| |_/ /| |__| | __\ \
  5. |_|  |_||_|  |_||_| \____/ |_|    |_|      \___/\/|____/  \____/ |____/
  6.  
  7. S O F T W A R E   Q D O S   E M U L A T O R   F O R   T H E   A M I G A
  8.  
  9. --------------------------------------------------------------------------
  10.  
  11. ›1m›4mVers. 3.24, revision 2 - FEB 98›0m
  12.  
  13. ›1mBUG FIXES:›0m
  14.  
  15.    The version of L_QDOS in the C directory of the last release was the
  16.    an old one and did not work with v3.24. I've put the correct version
  17.    in the archive this time round! -MJS
  18.  
  19.    Tidied up the cache routines a little in the ROMs MAIN_cde, KBD_cde and
  20.    SYS_cde and in the BASIC utilities SYS_REF, C68PATCH and XCHPATCH.
  21.    Mostly to do with COPYBACK compatibility. -MJS
  22.  
  23.    Fixed a bug in FLP_cde would corrupt the word at offset 32 in the QDOS
  24.    ROM that handles priviledge violation. This had the effect that a
  25.    MOVE sr,??? executed in user mode on big processors would cause an
  26.    exception instead of emulating the MOVE sr instruction. -MJS
  27.  
  28.  
  29. ›1mADDITIONS/ALTERATIONS:›0m
  30.  
  31.    Added the switch "-r" to the QDOS_START icons so the QDOS ROM is now
  32.    relocated by default. -MJS
  33.  
  34.    Removed the QLFileSystem from the distribution. The QLFileSystem is
  35.    superceded by XFS - a file system that allows access to a multitude of
  36.    disk formats including QL (QDOS) disks. XFS should be downloaded
  37.    seperately and can be found on the aminet in disk/misc. -FNS
  38.  
  39. --------------------------------------------------------------------------
  40.  
  41. ›1m›4mVers. 3.24, - FEB 98›0m
  42.  
  43. ›1mBUG FIXES:›0m
  44.  
  45.    Fixed bug in CLK_cde. Originally the counter was reset whenever the
  46.    time was checked. If it was checked too regularly the counter never
  47.    got a chance to tick over. The bug was noticable in the CLOCK task of
  48.    TK2 where the system time would seemingly 'freeze'. The counter is now
  49.    only reset when the counter gets close to its limit (every 3.88 days).
  50.    -MJS
  51.  
  52.    Fixed bug in KBD_cde that caused a crash on 040 and greater processors
  53.    if a QDOS reset was actuated while the copyback cache was enabled. -MJS
  54.  
  55.    Changed Main_cde to enable copyback cache during reset
  56.    (i.e. by default it is now enabled) -MJS
  57.  
  58.    Caches now cleared BEFORE FS.HEADS and FS.SAVE, AFTER FS.HEADR and
  59.    FS.LOAD, BEFORE MT.ACTIV, BEFORE MT.LXINT & MT.LPOLL & MT.LSCHD &
  60.    MT.LIOD and MT.LDD. -MJS
  61.  
  62.    The CLR_CACHE routine is now call-able from either supervisor or user
  63.    mode and preserves the CCR -MJS
  64.  
  65.    Changed SYS_REF patches to be more cache-friendly. -MJS
  66.  
  67.    The FPU is cleared during a QL-RESET to fix a bug whereby if the
  68.    FPU was left in an error state, it could cause an exception when first
  69.    accessed. Bug was noticable if a CTL-ALT-SHIFT-TAB reset was invoked
  70.    after installing George Gwilts' FPSP floating point routines -MJS
  71.  
  72.    MOVEP emulation (which is required on the '060 processor) is now
  73.    checked BEFORE following the user exception vector as MOVEP emulation
  74.    would be disabled if a program (like QMON) added its own user exception
  75.    routine. -MJS
  76.  
  77.    Removed an absolute call to the QDOS ROM from the CTRL-C routines
  78.    of KBD_cde. Would cause a crash if CTRL-C was pressed whilst running
  79.    a relocated QDOS ROM. -MJS
  80.  
  81.    Added LoadView(NULL) to L_QDOS to switch to motherboard graphics
  82.    before entering QDOS. -MJS
  83.  
  84.    A few tweaks to do with the keyboard repeat bug that still occurs
  85.    ocassionally. -MJS
  86.  
  87.    Fixed bug in user-mode MOVE sr,??? emulation. Didn't realise that
  88.    MOVEM.W (a7)+,dn sign extends dn. Bug trashed high word of dn when
  89.    a MOVE sr,dn instruction was executed. Caused problems with QPAC2.
  90.    -MJS
  91.  
  92.    FLP_cde no-longer uses the "drive-ready" signal. Instead it simply
  93.    waits-a-while and assumes that the drive must be ready. Also, if the
  94.    drive is already spinning then it is assumed that it is ready. This
  95.    is to fix a bug on AT A1200s that do not have a "drive-ready" signal.
  96.    -MJS
  97.  
  98.    BOOT sequence is now more like a real QL. If a disk in the drive
  99.    during ROM initialisation then will boot from FLP, otherwise it
  100.    will try to boot from MDV. This is accomodate the qubIDE ROM which
  101.    temporarily renames itself from WIN to MDV to allow booting from
  102.    hard disk. -MJS
  103.  
  104. ›1mADDITIONS/ALTERATIONS:›0m
  105.  
  106.    Changed the QDOS ROM and L_QDOS loader to allow QDOS to be relocated
  107.    into FAST RAM. The new switch "-r" tells L_QDOS to relocate the QDOS
  108.    system ROM to FAST RAM if it's available. Otherwise the switch is
  109.    ignored. QDOS vectors are redirected through a jump table enabling
  110.    essential QDOS routines to lie some distance from the vectors. The jump
  111.    table is located between $400 and $600 so the memory between $600 and
  112.    $C000 is unused if the ROM is relocated. Relocations are stored in
  113.    a table at the end of the ROM (see RELOC_asm). -MJS
  114.  
  115.    Improved the palette colours on mode 8 of VDU code. Only apparent
  116.    when ACE emulation is disabled -MJS
  117.  
  118.    Added a dummy MDV device that does nothing. For programs that
  119.    assume MDV exists in the device list. -MJS
  120.  
  121.    Supplied information for QubIDE hard disk driver. -PB
  122.  
  123.    Ported Phil Bormans QubIDE ROM (IDE hard disk driver). Amiga QDOS
  124.    now supports Amiga IDE hard disks containing QubIDE partitions &
  125.    volumes. Note, it does not support Amiga partitions & volumes.
  126.    A hard disk formatted on Amiga-QDOS will not be readable in AmigaDOS
  127.    -MJS
  128. --------------------------------------------------------------------------
  129.  
  130. ›1m›4mVers. 3.23, revision 2 - AUG 96›0m
  131.  
  132. ›1mBUG FIXES:›0m
  133.  
  134.    Fixed bug in the BASIC BOOT program on the QLutils disk. The program
  135.    did not allocate enough RAM before loading the PDTK SuperBASIC toolkit.
  136.    The statement on line 1040: "RESPR(3008)" should have read
  137.    "RESPR(3148)". -MJS
  138.  
  139.    Fixed error in SuperBASIC utility SYS_REF that 'introduced' a bug into
  140.    patched TURBO tasks. All SYS_REF'ed tasks should be run through the new
  141.    version of SYS_REF to replace the old patches with new. -MJS
  142.  
  143. ›1mADDITIONS/ALTERATIONS:›0m
  144.  
  145.    Repatched the tasks on the utilities disk with the newer version of
  146.    SYS_REF. -MJS
  147.  
  148.    Earlier releases were as DMS disk archives. This allowed the emulator
  149.    to be distributed in a format free from the hassle of installation.
  150.    Since Aminet administrators frown upon the use of DMS, future releases
  151.    will be archived using LHA and will contain no Workbench related
  152.    material. -MJS
  153.  
  154. --------------------------------------------------------------------------
  155.  
  156. ›1m›4mVers. 3.23 - OCT 95›0m
  157.  
  158. ›1mBUG FIXES:›0m
  159.  
  160.    Fixed bug in MOVE SR,<ea> emulation routine that prevented TURBO
  161.    compiler (and possibly others) from working on the A4000/A1200 -MJS
  162.  
  163.    Fixed bug in JS ROM IO_QIN routine that assumed 24 bit addressing.
  164.    $383A BNE.S $385A becomes BLT.S $385A -MJS
  165.  
  166.    Fixed bug in JS ROM RI_EXEC routine that assumed that the byte stored
  167.    at address $0 was $0. The long word stored at address $0 contains the
  168.    initial stack when re-booting QDOS. If QDOS is moved to a high address
  169.    (eg $7e00000-$8000000), then the byte at zero is non-zero. -MJS
  170.  
  171.    Fixed bug(s) in keyboard routines that caused auto-repeat to sometimes
  172.    go into overdrive if interrupts were disabled for a long period
  173.    (i.e. during disk accesses). -MJS
  174.  
  175.    Fixed L_QDOS to disable the MMU (on the '040+) before taking over the
  176.    amiga. -MJS
  177.  
  178.    CTRL-ALT-SHIFT-TAB (hard reset) and CTRL-ALT-7 (soft reset) now wait
  179.    for blitter to finish before disabling anything (so no more rolling-
  180.    screen-garbage) and correctly set all variables for VDU routines
  181.    (so no more screen lock-ups) -MJS
  182.  
  183.    Fixed bug in JS ROM ATAN routine at $4350 (ARITH_asm).
  184.    move.l #...,(a6,a1.w) becomes move.l #...,(a6,a1.l) -SNG
  185.  
  186. ›1mADDITIONS/ALTERATIONS:›0m
  187.  
  188.    Changed TAS emulation code from F-Line to A-Line. F-Line instructions
  189.    were taking too long on the A4000, possibly due to the hardware
  190.    searching for non-existent co-processors. Emulation now uses
  191.    instruction: %1010111XXXXXXXXX. Altered NO_TAS and RESTORE_TAS to suit.
  192.    -MJS
  193.  
  194.    Added ICACHE_ON, ICACHE_OFF, DCACHE_ON and DCACHE_OFF. These keywords
  195.    allow the instruction and data caches to be turned on and off.
  196.    Intruction and data caches default to ON. -MJS
  197.  
  198.    Added RESET_EXTENTS command to compliment RESET_TOP and RESET_SV.
  199.    RESET_EXTENTS allows the simultaneous setting of RAMTOP and the system
  200.    variable area. -MJS
  201.  
  202.    Altered SYS_REF_task to make TURBO, TURBO compiled and some QLIB tasks
  203.    32-bit clean. -MJS
  204.  
  205.    Added support for 'other' (i.e. not the default) screen and independent
  206.    screen redraw (switch modes without clearing screen) to BASICs MODE and
  207.    the m/c routine MT.DMODE. (now 100%+ minerva compatible?). Task/screen
  208.    switching supports differing screen modes (i.e. one screen can be mode
  209.    8 and the other mode 4). The unused bits in SV_MCSTAT are used to
  210.    indicate the state of the 'unseen' screen. Lots of changes in the ROM
  211.    to accomodate for the fact that the screen you are drawing/printing to,
  212.    may be other than or in a different mode to the one that is being
  213.    shown. -MJS
  214.  
  215.    Added COPYBACK_ON and COPYBACK_OFF which allows copyback mode to be
  216.    turned on and off. -SNG
  217.  
  218.    Added 'ACE' screen accelerator. This ROM takes over from the blitter
  219.    providing QL screen emulation via the processor. Both MODE 4 and MODE 8
  220.    are supported. On 68030 processors and above, screen emulation is both
  221.    smoother and faster. 'ACE' screen emulation can be turned on or off via
  222.    the commands ACE_ON and ACE_OFF. -SNG
  223.  
  224.    Altered L_QDOS to 'auto-configure' allowing QDOS to be launched from a
  225.    single icon on ALL amigas. Custom icons are provided for those who wish
  226.    to force a particular configuration (i.e. running QDOS from CHIP RAM
  227.    only). -MJS
  228.  
  229.    Added KEZUK keyword. Acts just like KEYUK, by re-enabling the UK
  230.    keymap. -MJS
  231.  
  232.    Added MOVEP emulation for 68060 compatibility. MOVEP is not implemented
  233.    on the 68060! -MJS
  234.  
  235.    On 68010+... exception vectors now copied into RAM, and VBR set to
  236.    point to vector copies. This allows all 256 exceptions to be catered
  237.    for. Vectors 48-255 are normally unusable (overwritten) in QDOS. -MJS
  238.  
  239.    Vector 4 (illegal instruction) copied into vector 61. Allows 68060
  240.    MOVEP emulation to actually work. Bug fix suggested by Simon Goodwin.
  241.    -MJS
  242.  
  243. --------------------------------------------------------------------------
  244.  
  245. ›1m›4mVers. 3.22beta - (beta only, never released)... 93-94›0m
  246.  
  247. ›1mBUG FIXES:›0m
  248.  
  249.    Re-wrote the exception handler to accomodate for 680X0 processors. -MJS
  250.  
  251.    Fixed expansion RAM check routine - caused a bus error prior to F1/F2
  252.    screen on the A4000. -MJS
  253.  
  254.    Fixed L_QDOS so that it enters supervisor mode in a legal manner. -MJS
  255.  
  256.    Fixed a bug in RJOB/FRJOB routine (Trap#1 d0=4/5). The old JS routine
  257.    uses the upper bytes of addresses in the job table to "mark" jobs
  258.    awaiting deletion, while it traverses the job tree looking for related
  259.    jobs. It then assumes 24 bit addressing in hardware, and uses the
  260.    address without consideration as to the validity of the upper byte.
  261.    This caused a bus error on the A4000 whenever a job was removed. The
  262.    new routine uses a new status word (-3) that is stored in JB_STAT of
  263.    the job header and performs the same function in a 32-bit clean way.
  264.    -MJS
  265.  
  266.    A change in KBD_cde allows up to 8 characters to be typed while
  267.    interrupts are switched off (i.e. long disk accesses) before characters
  268.    are lost. The keyboard processor can store up to 20 key-strokes
  269.    (key-down / key-up = 2 key-strokes) in its' internal buffer before
  270.    losing characters. If the buffer is not empty the keyboard processor
  271.    causes an interrupt by setting a bit in INTREQ. During disk access
  272.    interrupts are disabled, but when interrupts are switched on again if
  273.    there are any characters in the buffer a CIAA interrupt should occur
  274.    immediately - allowing one to read the stored key-strokes. A logic
  275.    error in KBD_cde meant that if keystroke interrupts were 'stacked-up'
  276.    only the last one was serviced correctly. -MJS
  277.  
  278.    Added 'history' facility to KBD_cde. The last typed line can be
  279.    recovered by typing <ALT><ENTER> -MJS
  280.  
  281.    CTRL-TAB no-longer leaves a TAB character in the input stream, and
  282.    CTRL-I no-longer acts like a CTRL-TAB. -MJS
  283.  
  284.    Altered VDU code to clear BEAMCON0, BPLCON3 & FMODE for AGA downward
  285.    compatibility. -MJS
  286.  
  287.    Altered CLK code to update value for date every hour. This fixes a bug
  288.    whereby the date would wrap every 3.88 days if QDOS was left running
  289.    without ever doing a QL-reset. -MJS
  290.  
  291.    Altered CLK routine to use a value passed from Amiga-QDOS for the
  292.    date/time if no hardware clock is found - a    work-around fix for the
  293.    A4000 which seems to have the battery-backed-up clock at a different
  294.    hardware address. -MJS
  295.  
  296.    Fixed bug in 'NO_TAS_CoPro_bas' that produced bad code for TAS $.l
  297.    instruction. Fortunately TAS on absolute address is a rarely used
  298.    instruction. -MJS
  299.  
  300.    The FLP driver now checks the sector header to see if the track read
  301.    was the track that was requested. If it finds that it is reading the
  302.    wrong track, it attempts to step the head and re-read the track. It
  303.    tries this FOUR times before giving up with a BAD/CHANGED MEDIUM error.
  304.    Previously it was assumed that if the drive was asked to step IT WOULD
  305.    and that consequently any track read would be the correct one. -MJS
  306.  
  307.    The FLP driver now invalidates the MFM buffer after a read or write.
  308.    Previously it was possible that if for some reason the disk READ
  309.    routine returned before getting any data from disk, it might not be
  310.    noticed - since the buffer would almost certainly contain valid MFM
  311.    data. -MJS
  312.  
  313.  
  314. ›1mADDITIONS/ALTERATIONS:›0m
  315.  
  316.    Improved the documentation. The documentation was becoming unwieldly
  317.    (a new read.me file for every release) so I rationalised it down to 3
  318.    main files. "Amiga-QDOS.ver" contains information relating to specific
  319.    version releases, "Amiga-QDOS.doc" is a general overview of the
  320.    emulator and its peculiarities and "QDOS.doc" is an in-depth
  321.    description of the QDOS operating system. -MJS
  322.  
  323.    Added documentation for PDTK, the freeware BASIC toolkit to the QLutils
  324.    disk. Moved source to the QLutils disk also. -MJS
  325.  
  326.    Added FACCS, FXTRA, SET_FTYP, SET_FDAT, SET_FACCS, SET_FXTRA, CURSEN,
  327.    CURDIS to PDTK freeware BASIC toolkit. -MJS
  328.  
  329.    Added F_TRACE() and P_TRACE to the freeware toolkit PDTK. These
  330.    routines allow one to trace BASIC functions and procedures. -MJS
  331.  
  332.    Added D68K disassembly toolkit and documentation to the QLutils disk.
  333.    -FNS
  334.  
  335.    Added documentation for the TAS utility programs to the QLutils disk.
  336.    - MJS
  337.  
  338.    Altered 'NO_TAS_bas' and 'NO_TAS_CoPro_bas' to make use of the D68K
  339.    disassembly toolkit. -MJS
  340.  
  341.    Altered 'NO_TAS_bas', 'NO_TAS_CoPro_bas' and 'RESTORE_TAS_bas' to
  342.    enable the cursor during (y/n/a/q) queries - thus making it possible to
  343.    task-swap with CTRL-C into another job and back again. -MJS
  344.  
  345.    Altered 'RESTORE_TAS_bas' to handle code produced by both
  346.    'NO_TAS_CoPro_bas' and 'NO_TAS_bas'. -MJS
  347.  
  348.    Added 'TURBOFIX_bas' to allow non-F-line fix for TURBO tasks. -MJS
  349.  
  350.    Added screen blanking to MC_STAT hardware register emulation. -MJS
  351.  
  352.    Added support for QDOS sound. The BEEP syntax is supported in full.
  353.    Moved SPRITE and COPPER lists so as to provide room for a sound sample
  354.    buffer (280 bytes at $18168). -MJS
  355.  
  356.    Added PLAY_MUSIC_bas and PLAY_SCALE_bas to QLutils disk. These programs
  357.    demonstrate the possibilities of the BEEP command. -MJS
  358.  
  359.    Added RANDOM_code to QLutils disk, courtesy of SNG.
  360.  
  361.    Speeded up 'QLTRA_bas' by using the INPUT$ command from RANDOM_code.
  362.    Renamed program as 'SER_TRANSFER_bas'. -MJS
  363.  
  364.    Added the BASIC keywords PROG_USE, DATA_USE, DEST_USE, SPL_USE, PROGD$,
  365.    DATAD$ and DESTD$ to the FLP device driver. This is to accomodate for
  366.    programs like XCHANGE that make use of default directories. The
  367.    standard BASIC file commands (LOAD, SAVE, LBYTES etc.) do not as yet
  368.    make use of default directories (unless TK2 is loaded!). -MJS
  369.  
  370.    Added PD XCHANGE to QLutils support disk. Removed a number of programs
  371.    that were less useful. -MJS
  372.  
  373.    Added a routine to identify processor type. The results of the test
  374.    (executed at start-up) is stored in the second word of the system
  375.    variable SV_IDENT (i.e. at $28002). Execute a PEEK_W(163842) to find
  376.    out what QDOS thinks you have. The routine sets the following bits:
  377.      bit 0 - at least 68010    bit 4 - at least 68881
  378.      bit 1 - at least 68020    bit 5 - 68882 present
  379.      bit 2 - at least 68030    bit 6 - 68040/060 FPU
  380.      bit 3 - at least 68040    bit 7 - at least 68060
  381.    The routine also stores the following processor identity byte in
  382.    SysVars + 161, which follows recent QDOS conventions.
  383.    $00 (68000/68010), $20 (68020), $30 (68030), $40 (68040)
  384.    $60 (68060) -MJS ...68040/68060 changes -SNG
  385.  
  386.    Added emulation of the move sr,dn instruction in user mode for 680X0
  387.    processors. This addition should help A1200/A4000 users who were having
  388.    trouble running the QPTR pointer environment or TURBO (However there
  389.    was a bug in some beta versions of this emulation) -MJS
  390.  
  391.    Moved F-LINE emulation in with the general exception handlin routines
  392.    ('DBUGCODE_asm' & 'DBUGTBLS_asm'). -MJS
  393.  
  394.    The system now clears the instruction and data caches before executing
  395.    the F-LINE or MOVE sr,?? emulation routines (self modifying code!).
  396.    -MJS
  397.  
  398.    Added a TRACE routine to the system ROM. If the D68K toolkit is loaded,
  399.    a disassembly of the next instruction is given along with register
  400.    contents. -MJS
  401.  
  402.    If BASICs' #0 is found to be closed - CTRL-ALT-7, exception handling
  403.    (address error, illegal instruction etc.) and the TRACE routines now
  404.    re-open #0 to a standard CON window. -MJS
  405.  
  406.    MAIN_cde now links any unseen memory into the common heap as 'free'
  407.    memory. Dead areas (memory ranges that do not contain RAM) are linked
  408.    in as 'allocated' memory. It is no longer necessary to search for CHIP
  409.    RAM unknown to QDOS (as in the INSTALL routine of the 'QL World'
  410.    Amiga-QDOS article) since ALL RAM is available for use. The BOOT
  411.    program on the 'QLutils' disk is altered to accomodate these changes.
  412.    -MJS
  413.  
  414.    In this version AmigaQDOS ROMs (VDU, KBD etc) are ALWAYS loaded between
  415.    RAMTOP and the end of physical memory. This means that SV_RAMT does not
  416.    point to one past the last physical byte (as on a real QL), but to one
  417.    past the last usable byte. -MJS
  418.  
  419.    Altered the way MAIN_cde (and other ROMs) links itself into the RESET,
  420.    NMI, TRAP0, TRAP1 vectors etc... Now uses a linked list. -MJS
  421.  
  422.    Added 'MEMORY_MAP_bas' to the QLutils disk. This program prints the
  423.    current set-up of the various QDOS memory allocations (i.e common heap,
  424.    transient program area etc.) -MJS
  425.  
  426.    Added 'RESET_TOP' keyword (MAIN_cde) to allow users to re-boot with a
  427.    new RAMTOP, and 'RESET_SV' that allows users to move the system
  428.    variables and re-boot. See Amiga-QDOS.doc for details. -MJS
  429.  
  430.    The QDOS ROM (SYS_cde) is altered to allow the use of the second screen
  431.    and to take heed of repositioned system variables. MODE is altered to
  432.    act more like the Minerva ROM (see Amiga-QDOS.doc). -MJS
  433.  
  434.    KBD_cde is altered slightly to allow CTRL-C to switch screens if a task
  435.    makes use of the alternate screen. -MJS
  436.  
  437. ›1mOMISSIONS:›0m
  438.  
  439.    Removed UNIMPLEMENTED TRAP error routine from exception handler (the
  440.    use of trap #5 to trap #15 without first defining user trap routines).
  441.    The GST assembler - re-jigged by QUANTA - now contains two spurious
  442.    TRAP #5 instructions. -MJS
  443.  
  444. --------------------------------------------------------------------------
  445.  
  446. ›1m›4mVers. 3.21 - 21 APR 93›0m
  447.  
  448. ›1mBUG FIXES:›0m
  449.  
  450.    Altered MAIN_cde so as to prevent external interrupt routines being
  451.    interrupted part-way-through. -MJS
  452.  
  453.    Fixed bug whereby the SER device made use of H/W handshaking
  454.    irrespective of whether the connection was via SER1I or SER1H.
  455.    Handshaking is now implemented correctly. -MJS
  456.  
  457.    Closing a serial port connected via SER1Z now correctly sends a CTRL-Z
  458.    character before doing the actual close. -MJS
  459.  
  460.    Fixed bug that evolved in version 1.03 of the SER device driver. The
  461.    TBE interrupt (transmit buffer empty) was ignored, (the wrong bit was
  462.    tested) and data was only sent during the polled interrupt routine
  463.    meant for 'tidying up' the output buffer. This produced an through-put
  464.    rate of only 400-500 BAUD! -MJS
  465.  
  466.    The pending disk operation tidy-up routine is now a polled task as in
  467.    original CST sources. Previously the polled task caused floppy routines
  468.    to crash, so a scheduler task was used instead. -MJS
  469.  
  470.    The 'sethead' routine called during the 'flush' routine was the wrong
  471.    one. The routine used did not carry out a slave block update on files
  472.    of a particular length, and caused such files to lose their date. -MJS
  473.  
  474.    Fixed bug in the AmigaDOS QL-handler, that did not update the used
  475.    sectors count when copying to a QL disk. This sometimes resulted in a
  476.    disk appearing to have more sectors free than was physically possible.
  477.    -FNS
  478.  
  479.    Previous versions of the AmigaDOS QL-handler did not respond correctly
  480.    to the ACTION_INFO packets. This resulted in the QL device not
  481.    appearing for the Info command, and not appearing on the workbench,
  482.    when a non-QL disk was in the drive. -FNS
  483.  
  484. ›1mADDITIONS/ALTERATIONS:›0m
  485.  
  486.    The parallel device is now buffered and interrupt driven - so within
  487.    the constraints of printer speed, output via the parallel port is much
  488.    faster. -MJS
  489.  
  490.    Added 'RNCL' (RAW, CR/LF, CR or LF) end of line protocol and 'F'
  491.    (FORMFEED) end of file protocol (CLOSE) to the PAR device driver. -MJS
  492.  
  493.    Altered the QDOS diskcopy command to recognise and report an error
  494.    when the destination disk is write protected, and when either source
  495.    or destination is not in the drive. -MJS
  496.  
  497.    Wrote a disk archiver program called PPvolume that utilises the
  498.    powerPacker library and can crunch ANY disk format (PC AMIGA QL) that
  499.    has a corresponding device/handler. -MJS
  500.  
  501.    Changed the preferred distribution method from three disks to two
  502.    AMIGADOS disks. 'QLboot' contains the emulator and documentation,
  503.    'QLstuffed' contains the original AMIGADOS 'QLsource' disk and QDOS
  504.    'QLutils' disk as two stuffed archives. The archive program used is
  505.    PPvolume. -MJS
  506.  
  507.    Optimised the AmigaDOS QL-handler slightly, resulting in considerably
  508.    faster disk writes. -FNS
  509.  
  510. --------------------------------------------------------------------------
  511.  
  512. ›1m›4mVers. 3.20 - 28 FEB 93›0m
  513.  
  514. ›1mBUG FIXES:›0m
  515.  
  516.    Fixed bugs in the JS QDOS code at addresses $3EC, $60E, $6F0 and $3230
  517.    that contain ADDA.W instructions, where ADDA.L should be used. This
  518.    caused problems on large memory systems. -MJS
  519.  
  520.    Fixed a bug in the FLOPPY code that caused RENAME, SETHEAD and the
  521.    save/overwrite feature of TKII to function incorrectly. The original
  522.    CST sources used a polled task to tidy up pending disk operations after
  523.    disk access. For some reason this was removed from the emulator sources
  524.    and meant that after some disk operations, slave blocks and disk
  525.    contents no longer tallied. Subsequent disk writes could cause data
  526.    corruption. -MJS
  527.  
  528.    TAS emulation is now extended to two instructions a TST and a BSET, as
  529.    the original TAS emulation did not set the N flag and caused
  530.    difficulties in some programs.  -MJS
  531.  
  532. ›1mADDITIONS/ALTERATIONS:›0m
  533.  
  534.    Changed most of the icons to be more WB2-like in appearance. -MJS
  535.  
  536.    Added some new start-up icons reflecting even more machine
  537.    configurations. Renamed some of the older ones to be more user
  538.    friendly. -MJS
  539.  
  540.    Extended the number of tooltypes available to L_QDOS to 16. -MJS
  541.  
  542.    I put the source back together in the same order as the JS original and
  543.    implemented Amiga-specific code as separate extension ROMS. There are
  544.    now separate ROMs for the keyboard, for the display, for the system
  545.    time, etc...The result is that emulator is now a JS equivalent with a
  546.    few minor quirks. -MJS
  547.  
  548.    Rejigged the JS Floating point output routine (based on some pokes by
  549.    S N Goodwin) to allow accurate editing and printing of 8 digit numbers
  550.    without going into E notation. -MJS
  551.  
  552.    Initialised the QDOS system time in the external ROM 'CLK_cde', making
  553.    it possible to keep the time intact during a QL RESET
  554.    (CTRL-ALT-SHIFT-TAB) -MJS
  555.  
  556.    Added access to the second screen via CTRL-TAB, or by poking the
  557.    relevant hardware register (see below). -MJS
  558.  
  559.    Added emulation of the hardware register MC_STAT ($18063). You can
  560.    switch screens by toggling bit 7. You can switch screen modes by
  561.    toggling bit 3 (a change of screen colours signals that mode 8 is in
  562.    operation). -MJS
  563.  
  564.    This version of the emulator can display, and return the screen
  565.    coordinates of a simple mouse pointer (SPRITE) via the BASIC commands:
  566.    PTR_ON, PTR_OFF, PTR_X% and PTR_Y%. -MJS
  567.  
  568.    Added SCR_PRIORITY command allowing you to set the speed at which the
  569.    screen will be refreshed. -MJS
  570.  
  571.    Added BLIT_OFF and BLIT_ON commands. -MJS
  572.  
  573.    Added QL cold-reset function (CTRL-SHIFT-ALT-TAB). -MJS
  574.  
  575.    Made Keys F6-F10 produce the same codes as SHIFT F1-F5 -MJS
  576.  
  577.    Added KEYUK and KEYDT commands to allow you to switch between a UK or
  578.    German keymap. -MJS
  579.  
  580.    The serial and parallel devices are now implemented as separate ROMs.
  581.    -MJS
  582.  
  583.    Every drive attached to the Amiga now has its own ASCII buffer. This
  584.    means that copying between drives is considerably faster than with
  585.    previous releases. -MJS
  586.  
  587.    CRC checking has been re-implemented. Previously the floppy routines
  588.    had to disable CRC checking to allow the reading of disks, written to
  589.    by early versions of the emulator. -MJS
  590.  
  591.    Head stepping is quicker, now being handled by the TIMER. -MJS
  592.  
  593.    The floppy driver now word aligns sector data automatically during a
  594.    read by enabling the sync word ($4489) recognition signal. This means
  595.    that bit-shifting software no longer has to align raw MFM data. -MJS
  596.  
  597.    Added MOUNT command for drives that do not respond with a correct
  598.    drive ID. -MJS
  599.  
  600.    Added FLP_USE command. -MJS
  601.  
  602.    Wrote and included the programs 'NO_TAS_bas' and 'NO_TAS_task' which
  603.    are a rewrite of the program TAS_REPLACER_bas of previous releases.
  604.    These replace TAS instructions by a Line-F instruction with a
  605.    co-processor ID of 7 (bits 9-11 set). This is unused at present, so the
  606.    code  should be compatible with 68020, 68030 or 68040 machines that
  607.    include co-processors. -MJS
  608.  
  609.    Wrote 'RESTORE_TAS_bas' which puts-back TAS instructions where
  610.    'NO_TAS_bas' removed them. -MJS
  611.  
  612.    Wrote and included 'NO_TAS_CoPro_bas' and 'NO_TAS_CoPro_task'. These
  613.    are a rewrite of the program 'NO_TAS_30_bas' that appeared in earlier
  614.    releases. -MJS
  615.  
  616.    Wrote and included 'QLIBFIX_bas' that modifies QLIB'ed programs to run
  617.    on the emulator. -MJS
  618.  
  619.    Wrote and included 'POKE_DIGITS_bas' that modifies the emulator to run
  620.    with 5,6,7 or 8 digit floating point precision. -SNG
  621.  
  622.    Wrote and included the QL-disk handler and removed the utilities QLtoAM
  623.    and QLdir that are now redundant. It is now possible to insert a QL
  624.    disk into the Amiga and have AmigaDOS treat it like any other disk.
  625.    -FNS
  626.  
  627.    Wrote and included 'PDTK_rext' a public domain toolkit that includes
  628.    many commands found in TKII. Please distribute. -MJS
  629.  
  630. ›1mOMISSIONS:›0m
  631.  
  632. The effort to make the source practically byte for byte compatible with a
  633. standard JS ROM, made it necessary to drop some of the features of
  634. previous emulator releases.
  635.  
  636.    Dropped the OVERFLOW DISABLE feature of earlier sources.
  637.  
  638.    Dropped search path on IO.OPEN. Earlier sources had a modified IO.OPEN
  639.    (OLD) routine that would search devices RAM1_ RAM2_ FLP1_ FLP2_ in
  640.    order if it did not recognise a given filename. This is no longer
  641.    implemented. Toolkits such as TKII are more effective.
  642.  
  643. --------------------------------------------------------------------------
  644.  
  645. ›1m›4mVers. 3.10B - 25 JUN 90›0m
  646.  
  647. ›1mBUG FIXES:›0m
  648.  
  649.    Fixed bug in Messydisk device driver (nothing to do with QDOS, but used
  650.    by commands that access QL floppies on the Amiga). Although the QL
  651.    format only uses 9 sectors, my QL Trumpcard invariably creates a 10th,
  652.    incomplete sector. Messydisk had problems reading data from such disks.
  653.    -MJS
  654.  
  655. ›1mADDITIONS/ALTERATIONS:›0m
  656.  
  657.    Added access to QL floppies from AmigaDOS via 3 new commands: QLdir to
  658.    display a QL directory, QLtoAM to copy files from a QL disk to an Amiga
  659.    disk and QLdiskcopy to make duplicates of QL floppies. -MJS & FNS
  660.  
  661.    Have written and included a program called 'StripCode' which literally
  662.    strips the code segment out of an Amiga assembled file so that you can
  663.    run it in the QDOS environment. -FNS
  664.  
  665.    Moved source files over to the AmigaDOS environment, and altered it to
  666.    assemble with the A68K public domain assembler. Used stripcode to make
  667.    it run-able in the QDOS environment. -MJS
  668.  
  669. --------------------------------------------------------------------------
  670.  
  671. ›1m›4mVers. 3.10 - 27 MAY 90›0m
  672.  
  673. ›1mBUG FIXES:›0m
  674.  
  675.    Fixed bug in Slave Block initialisation. Every block of 512 bytes above
  676.    the start of the system variables is a potential slave block and has an
  677.    entry of eight bytes in a table which starts at SV.BTBAS and finishes
  678.    at SV.BTTOP. Great care is taken to make sure that the length of this
  679.    table is divisible by eight. The system variable SV.BTPNT points to the
  680.    most recent slave block entry and is initially set to point half way
  681.    through the table. No checks were made to make sure that SV.BTPNT was
  682.    itself divisible by eight. SV.BTPNT is now initialised correctly - half
  683.    way between the first usable entry, and the last usable entry. -MJS
  684.  
  685.    Fixed problem with common heap initialisation. In previous releases it
  686.    was very difficult to choose a value for ramtop, (besides the defaults)
  687.    that did not cause the machine to crash. The start of the common heap
  688.    has to fall on a 512 byte boundary which for certain values of ramtop,
  689.    was not always the case. SV.RAMT can now be set to any value that is
  690.    divisible by 512. -MJS
  691.  
  692.    Fixed a  bug in the floppy code which prevented access to a floppy
  693.    disk, should it be in the drive when you invoke QDOS. Any attempt to
  694.    access such a disk would show 'not found' or a corrupt directory unless
  695.    you physically removed and then re-inserted the disk in the drive.
  696.    Signalling a disk change in the initialisation routine of FLOPPY2_asm
  697.    cured the problem. -MJS
  698.  
  699.    Fixed CRC bug that prevented a real QL from accessing disks that had
  700.    been written by the Amiga-QDOS floppy routines. -MJS
  701.  
  702.    Fixed the IO.FLINE bug (caused crash on BASIC LOAD) in the Janus device
  703.    driver. -RK
  704.  
  705.    Altered the Load_QDOS routine so as to avoid loading QDOS at absolute
  706.    addresses. This should be of great use to all of you, who had trouble
  707.    with the second floppy drive. -RK
  708.  
  709.    Fixed some minor inconsistencies - the PAL bit is set, the Modulo is
  710.    set correct. -RK
  711.  
  712. ›1mADDITIONS/ALTERATIONS:›0m
  713.  
  714.    Added English keyboard support. -RC
  715.  
  716.    Added new Manager Trap: TRAP #1 with D0 set to $27 and D1 containing
  717.    the address of a new Keyboard table. Allows use of foreign Language
  718.    keyboard tables. -RK
  719.  
  720.    Added DSKCNG command to accommodate for drives that do not handle disk
  721.    change signals correctly, and cause problems for the disk routines. -RK
  722.  
  723.    Extended the diskchange command (DSKCNG) to handle more than one drive
  724.    correctly. -MJS
  725.  
  726.    Moved the marking of unusable blocks between system variables and lomem
  727.    to the slave block initialisation routine. This was formerly
  728.    accomplished by allocating the memory in the initialisation routine for
  729.    BASIC. As a result the MM_ALCHP "no clear" feature of previous releases
  730.    is now redundant. -MJS
  731.  
  732.    Added first version of the AmigaDOS L_QDOS command. This command is
  733.    similar to the old Load_QDOS command, except that it does not require
  734.    IconX since it takes its parameters from an icons' TOOLTYPES field.
  735.    -MJS
  736.  
  737.    Added a startup option for people with extended memory at $C00000. -MJS
  738.  
  739.    Added some nice icons that make this update is more "Amigaized", and so
  740.    perhaps, more easy to understand. -JR
  741.  
  742.    Altered the QDOS code to be 68010/20/30/40 proof. I have tested it
  743.    briefly, and it seemed to work. -RK
  744.  
  745.    Added a new feature to the TRAP #0 (enter supervisor mode). It now
  746.    saves the old Status Register as a word in the new defined System
  747.    Variable SV.SR = $28024. -RK
  748.  
  749.    Added SuperBasic program NO_TAS_30_bas which unlike the previous TAS
  750.    emulation utilities, doesn't generate line $F instructions. TAS
  751.    replaced programs show (at least) a very strange behaviour on 68030
  752.    machines with a coprocessor. This is because the line $F instructions
  753.    are used for coprocessor implementation. NO_TAS_30 replaces the TAS
  754.    instruction with a branch to equivalent code. This utility cannot be
  755.    used on code greater than 32K. -RK
  756.  
  757. --------------------------------------------------------------------------
  758.  
  759. ›1m›4mVers. 3.03 - 21 MAY 90›0m
  760.  
  761. ›1mBUG FIXES:›0m
  762.  
  763.    Fixed bug that caused the keyboard emulation to fail on certain
  764.    keyboards. -RK
  765.  
  766.    Fixed the Ctrl-C , Ctrl-spc , Ctrl-F5 'bug'. -RK
  767.  
  768.    Fixed obscure memory management bug. -RK
  769.  
  770. ›1mADDITIONS/ALTERATIONS:›0m
  771.  
  772.    Added device driver for QDOS floppies. -RK
  773.  
  774.    Added DISKCOPY command. -RK
  775.  
  776. --------------------------------------------------------------------------
  777.  
  778. ›1m›4mVers. 3.01 - ?? ??? ??›0m
  779.  
  780. ›1mADDITIONS/ALTERATIONS:›0m
  781.  
  782.    Added JANus device driver to give access to the IBM hard-disk on the
  783.    Bridgeboard. -RK
  784.  
  785. --------------------------------------------------------------------------
  786.  
  787. ›1m›4mVers. 2.00 - 22 JUN 89›0m
  788.  
  789. ›1mBUG FIXES:›0m
  790.  
  791.    Fixed the ERR_DF bug. -RK
  792.  
  793.    Fixed bug in translate routines. The TRA table should now work in both
  794.    directions (I have not tested the routine). -RK
  795.  
  796.    Fixed bug that caused EPROM initialisation to hang up during the Boot
  797.    process. -RK
  798.  
  799. ›1mADDITIONS/ALTERATIONS:›0m
  800.  
  801.    Added NMI (<ctrl.> <Alt> <7>) warm reset. -RK
  802.  
  803.    Added ability to BREAK out of EXEC_W programs. -RK
  804.  
  805.    Added SYS_RESET command. -RK
  806.  
  807.    Extended EPROM recognition. EPROMs now tested at $10000, and from
  808.    $40000 on in steps of 256 bytes. -RK
  809.  
  810.    Added search list (RAM1_, RAM2_, FLP1_, FLP2_, MDV1_, MDV2_) to OPEN on
  811.    old files, and the CLR_SEALST command that disables this feature. -RK
  812.  
  813.    Added the commands OV_OFF and OV_ON to switch the Overflow error
  814.    checking on Floating-point arithmetics on and off. -RK
  815.  
  816.    Reserved a scratch area of 1K in the respr area, just below RAMTOP. -RK
  817.  
  818. --------------------------------------------------------------------------
  819.  
  820. ›1m›4mKEY TO PROGRAMMERS›0m
  821.  
  822. Thanks to:
  823.  
  824. RK    Rainer Kowallik for the emulator.
  825.       Wolfgang Schroeder and Joern Ryba for discussion,
  826.       Boris Jakubith and Mathias Leidig for the CRC generator,
  827.       Andreas Ihlenfeld for his Keyrow MT.IPCOM,
  828. MJS   Mark J Swift for all of his Bug fixes (and recent modifications)
  829. FNS   Francis N Swift for the QL0: device driver and various utilities.
  830. SNG   Simon N Goodwin for POKE_DIGITS_bas, PALETTE_bas, for the QL World
  831.       and AmigaFormat articles about the emulator and for the many hours
  832.       of beta-testing.
  833. RC    Rod Crookes for the English keymap.
  834. JR    Joern Ryba for some nice icons.
  835. PB    Phil Borman for QubIDE IDE hard disk support.
  836.  
  837. --------------------------------------------------------------------------
  838.  
  839. ›1m›4mCOPYRIGHT STATEMENT:›0m
  840.  
  841. Since I have spent much time developing this emulator, I do not think that
  842. it is immoral to claim it as my own program. Nevertheless QDOS and related
  843. names are protected by those who still have the rights (is it Sinclair
  844. again, or Amstrad, or T.Tebby or who or what ?). However this should not
  845. stop you from spreading this disk, as long as you are sure that no
  846. commercial use is made from all that stuff. I am sure that these programs
  847. are only of interest to those people who own or have owned a QL or THOR,
  848. and so have already paid for the software. Those who are working with
  849. these programs and don't posses a QL, are invited to buy one second hand.
  850.  
  851. Rainer Kowallik
  852.  
  853. --------------------------------------------------------------------------
  854.  
  855. ›1m›4mWHAT HAS TO BE DONE NEXT›0m
  856.  
  857. These are the most important things to do, but unfortunately I don't have
  858. enough time to do this all by myself. I am writing my doctor thesis in
  859. Physics (May 90), and this will cost most of my time. So I am looking for
  860. people who are interested in this project and are able and willing to do
  861. some work for it. I think, it is best you contact me to get information
  862. about a specific part of the project. So you can avoid to invent the wheel
  863. a second time.
  864.  
  865. You can reach me by post mail:
  866.   Rainer Kowallik, Eisackstr. 14, 1000 Berlin(W) 62 (Germany)
  867.  
  868. By Phone:
  869.   (Germany) 030 855 866 5
  870.  
  871. By EAN mail:
  872.   Kowallik@vax@hmi@dbp.de
  873.  
  874. or in the new form:
  875.   S=KOWALLIK;OU=VAX;P=HMI;A=DBP;C=DE
  876.  
  877. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  878. Subject             | Programmer
  879. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  880. An adaption of the Toolkit  |
  881. network server which uses   |
  882. the CD bit of the serial    |
  883. port (CIA-B, PRA #5). The   |
  884. transmission speed should   |
  885. be changeble            |
  886. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  887. A device driver for the     |
  888. Harddisk DH0, using        |
  889. subdirectories and        |
  890. fileformat of Amigados        |
  891. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  892. New SCR_ and CON_ drivers   |
  893. which can use all features  |
  894. of the Amiga (32 colours,   |
  895. extra halfbright Interlace, |
  896. overscan)            |
  897. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  898. Modify the emulator to        |
  899. allow QDOS to run as an     |
  900. AmigaDOS task, thus        |
  901. allowing QDOS access to all |
  902. AmigaDOS devices and        |
  903. peripherals.            |
  904. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  905. ALL PROGRAMS (EXCEPT THE LAST) SHOULD BE IN THE FORMAT OF A
  906. STANDARD QL-ROM.NO OTHER INTERFACE THAN A ROM TOOLKIT SHOULD
  907. BE USED!
  908.  
  909. --------------------------------------------------------------------------
  910.  
  911. ›1m›4mMAKING CHANGES TO THE EMULATOR›0m
  912.  
  913. PLEASE DO CHANGE THE SOURCES, AND MARK ALL CHANGES WITH A SPECIAL COMMENT
  914. (e.g. a unique combination of special characters). WRITE DOWN (on white
  915. paper) WHICH ROUTINES (Label names) YOU HAVE MODIFIED, AND SEND BOTH (DISK
  916. AND PAPER) AS FAST AS POSSIBLE TO ME. I will put all changes together to
  917. make a new Version of QDOS.
  918.  
  919. Thank you,
  920.  
  921.   Rainer Kowallik, May 1990
  922.   Eisackstr. 14
  923.   1000 Berlin 62
  924.  
  925.   (030) 855 866 5
  926.  
  927.   Kowallik@vax@hmi@dbp.de
  928.  
  929. --------------------------------------------------------------------------
  930.  
  931. ›1m›4mADDENDUM - M J Swift›0m
  932.  
  933. ›1mCONTINUING DEVELOPMENT›0m
  934.  
  935. I am under the impression that due to recent commitments, Rainer has very
  936. little time to make any further improvements to the emulator. Therefore,
  937. in Rainers absence, I have taken on the responsibility for the emulator's
  938. continuing development.
  939.  
  940. Rainer states that he based his emulator on a JS ROM disassembly. He also
  941. re-ordered the source to be more logical, and re-wrote areas that were
  942. hardware specific.
  943.  
  944. This however, led to a mingling of old and new code that was very
  945. difficult to debug (for anyone but the original author). With this in mind
  946. I put the source back together in the same order as the JS original, and
  947. did a binary comparison with a genuine Sinclair JS ROM. This allowed me to
  948. pin-point NEW sections of code, which I implemented instead as separate
  949. Amiga-specific extension ROMS. For example there are now separate ROMs for
  950. the keyboard, display, system time, etc...
  951.  
  952. In a sense the current emulator is a reverse-engineered copy of Rainers'
  953. original which leaves the main bulk of system source code unchanged from a
  954. JS disassembly.
  955.  
  956. If you have any comments or bug-fixes you can contact me at the addresses
  957. given below. Any mail sent to Rainer will most likely be forwarded on to
  958. me.
  959.  
  960. Mail me direct at the         ...and contact me
  961. following address:        most weekends at:
  962.  
  963.   Rear Flat              325 Charlestown Road
  964.   175 Church Street          Blackley
  965.   Blackpool              Manchester
  966.   FY1 3NX              M9 7BS
  967.  
  968.   e-mail:              Tel. 0161-682 7587
  969.   msw@blackpool.ac.uk
  970.  
  971. If a bug is a one-off occurrence - it MAY be a glitch. If the bug recurs,
  972. please contact me describing IN DETAIL the condition of re-ocurrence. Be
  973. as specific as possible - and be patient.
  974.  
  975. MARK J SWIFT
  976. --------------------------------------------------------------------------
  977.